跳到主要内容

使用分割器

本教程将指导您使用 OV20i 的 AI 分割功能创建完整的分割检测。您将学习如何通过逐像素教导相机识别和测量特定特征,如铅笔痕迹、划痕或其他缺陷,从而实现检测和分析。

您将学到:

  • 如何从头到尾设置分割配方
  • 如何训练 AI 模型识别特定特征
  • 如何根据分割结果配置通过/失败逻辑
  • 如何优化分割性能以适应生产使用

实际应用示例: 本教程以铅笔痕迹检测为例,但相同原理适用于检测划痕、裂纹、污染或任何其他可视觉区分的特征。

先决条件

  • 已设置并连接的 OV20i 相机系统
  • 带有您想检测特征的样品零件(例如带铅笔痕迹的纸张)
  • 对 AI 训练概念的基本理解
  • 可访问 Recipe Editor 和 Node-RED 功能

教程概览

我们将构建的内容: 一个能够检测纸张上铅笔痕迹并根据检测到的标记量判断通过/失败的分割模型。

所需时间: 45-60 分钟(含训练时间)

学习技能: AI 模型训练、分割标注、通过/失败逻辑配置

步骤 1:创建新的分割配方

1.1 新建配方

  1. All Recipes 页面,点击右上角的 "+ New Recipe"
  2. 弹出“添加新配方”窗口
  3. 输入描述性的 Name(例如 "Pencil_Mark_Detection")
  4. 从配方类型下拉菜单中选择 "Segmentation"
  5. 点击 "OK" 创建新配方

为何选择分割? 与识别整个对象的分类不同,分割能找到并测量图像中的特定特征,非常适合缺陷检测、污染分析或覆盖面积测量。

image.png

1.2 激活配方

  1. 新配方将在 All Recipes 页面显示为 "Inactive"
  2. 在配方右侧选择 "Actions > Activate"
  3. 点击 "Activate" 确认
  4. 配方状态变为 "Active"

image.png

1.3 进入 Recipe Editor

  1. 点击活动配方旁的 "Edit"
  2. 点击 "Open Editor" 确认
  3. 进入带有分割配方的 Recipe Editor 界面

检查点: 您应看到带有分割配方名称的 Recipe Editor 界面面包屑菜单。

步骤 2:配置相机成像

2.1 访问成像设置

  1. 在 Recipe Editor 中,点击左下角的 "Configure Imaging"
  2. 打开成像配置页面,优化相机设置

image.png

2.2 优化对焦设置

  1. 将带有铅笔痕迹的样品纸放入相机视野
  2. 使用 Focus slider 调整至铅笔痕迹清晰对焦
  3. 可手动输入对焦值以提高精度
  4. 使用 Focus View(如有)查看边缘高亮和对焦评分

对焦提示:

  • 对焦于缺陷出现的表面
  • 确保铅笔痕迹清晰且轮廓分明
  • 对焦评分越高,焦点质量越好

2.3 配置曝光设置

  1. 调整 Exposure 滑块以获得合适亮度
  2. 铅笔痕迹应清晰可见,纸张不过曝
  3. 可先使用自动设置,再根据需要微调
  4. 监控实时预览,观察调整效果

曝光指南:

  • 铅笔痕迹与纸张应有良好对比
  • 避免过曝导致细微痕迹消失
  • 保持整个检测区域光照均匀

2.4 设置 LED 照明

  1. 选择适合应用的 LED Light Pattern
  2. 对铅笔痕迹检测,均匀照明通常效果最佳
  3. 调整 LED Light Intensity 以减少阴影和眩光
  4. 如有反光问题,可尝试不同光照模式

2.5 调整 Gamma 和对比度

  1. 微调 Gamma 以增强痕迹与背景的对比度
  2. 较高的 Gamma 可使细微铅笔痕迹更明显
  3. 较低的 Gamma 可减少干净区域的噪点
  4. 平衡 Gamma 以优化缺陷可见性和背景清晰度

2.6 保存成像设置

  1. 设置优化完成后,点击 "Save Imaging Settings"
  2. 相机配置将保存至该配方
  3. 实时预览应显示清晰且对比度良好的图像

检查点: 相机应生成清晰图像,铅笔痕迹与纸张背景易于区分。

步骤 3:配置模板和对齐

3.1 进入模板图像和对齐设置

  1. 点击面包屑菜单中的 Recipe Name 返回 Recipe Editor
  2. 从菜单中选择 "Template Image and Alignment"

3.2 本教程中跳过对齐器

  1. 由于我们要检测整张板材的特征,点击 “Skip Aligner”
  2. 这将禁用基于位置的对齐,使用整张图像
  3. 点击 “Save” 以应用更改

何时使用对齐器: 当需要检测可能移动或旋转的零件特定位置的特征时,启用对齐器。对于像铅笔痕迹这样的整张板材检测,通常适合跳过对齐器。

image.png

第 4 步:设置检测区域

4.1 进入检测设置

  1. 返回 Recipe Editor,选择 “Inspection Setup”
  2. 这里定义要分析的图像区域

4.2 配置感兴趣区域 (ROI)

  1. 你将看到相机视野的预览
  2. 拖动 ROI 框的角点 调整其大小和位置
  3. 对于铅笔痕迹检测,通常覆盖整个板材区域
  4. 确保 ROI 包含所有可能出现铅笔痕迹的区域

ROI 最佳实践:

  • 包含所有可能出现缺陷的区域
  • 排除边缘或背景等不应分析的区域
  • ROI 应足够大以覆盖零件位置的变化
  • 避免包含文字、标志或其他预期标记

4.3 保存 ROI 配置

  1. ROI 定位正确后,点击 “Save”
  2. 检测区域即为分割模型定义的范围

第 5 步:标注并训练模型

5.1 进入标注与训练

  1. 返回 Recipe Editor,选择 “Label and Train”
  2. 在这里教 AI 识别铅笔痕迹

image.png

5.2 配置检测类别

  1. Inspection Types 下点击 “Edit”
  2. 将类别重命名为 “Pencil Mark”(或你的具体缺陷类型)
  3. 选择一个醒目的 颜色 用于显示检测到的痕迹
  4. 点击 “Save” 应用更改

5.3 捕获训练图像

  1. 拍摄至少 10 张 带有不同铅笔痕迹的板材图像
  2. 训练样本应多样化:
    • 不同大小和形状的铅笔痕迹
    • 浅色和深色痕迹
    • 板材上的不同位置
    • 不同密度的痕迹

训练图像建议:

  • 包含明显和细微的痕迹
  • 捕捉各种光照条件
  • 每张图像中包含无痕迹的干净区域
  • 确保图像代表实际生产环境

5.4 标注训练图像

  1. 对每张训练图像,使用 Brush tool 勾勒铅笔痕迹
  2. 仅标注铅笔痕迹,避免标注纸张或其他特征
  3. 标注要精确且全面
  4. 每张图像标注完成后点击 “Save Annotations”

标注最佳实践:

  • 对“铅笔痕迹”的定义保持一致
  • 标注完整的痕迹,而非部分
  • 不标注预期的文字或标志
  • 使用稳定且细致的笔触确保边界准确

5.5 审核标注

  1. 仔细检查所有标注图像 确保准确无误
  2. 查找遗漏或错误标注的区域
  3. 需要时重新标注
  4. 高质量标注提升模型性能

第 6 步:训练分割模型

6.1 开始训练流程

  1. 标注至少 10 张图像后,点击 “Return to Live”
  2. 点击 “Train Segmentation Model”
  3. 输入训练的 迭代次数

迭代次数指南:

  • 初次训练建议 100-200 次迭代
  • 更多迭代通常提高准确度,但耗时更长
  • 监控训练进度并根据情况调整
  • 在准确度和训练时间间取得平衡

image.png

6.2 监控训练进度

  1. 点击 “Start Training” 开始训练
  2. 训练进度弹窗显示:
    • 当前迭代次数
    • 训练准确率百分比
    • 预计剩余时间

6.3 训练控制选项

训练过程中,你可以:

  • Abort Training — 若需修改,停止训练
  • Finish Training Early — 达到满意准确率时提前结束
  • Monitor Progress — 观察准确率随迭代提升

训练建议:

  • 训练达到目标准确率时会自动结束
  • 更高准确率表示模型性能更好
  • 若准确率停滞,可能需要更多训练数据

6.4 评估训练结果

  1. 训练完成后,查看最终准确率
  2. 点击 “Live Preview” 观察实时分割效果
  3. 使用新样本测试模型性能

成功指标:

  • 铅笔痕迹以选定颜色高亮显示
  • 干净区域未被误标
  • 不同类型痕迹均能稳定检测
  • 模型对新样本响应良好

第 7 步:配置合格/不合格逻辑

7.1 进入 IO Block

  1. 返回 Recipe Editor,选择 “IO Block”
  2. 确保所有 AI Block 显示为 “trained (green)” 后继续
  3. 点击 “Configure I/O” 进入 Node-RED 编辑器

image.png

7.2 设置 Node-RED 流程

  1. 删除现有的 Classification Block Logic 节点
  2. 从左侧调色板拖入:
    • All Block Outputs 节点(如果尚未存在)
    • Function 节点
    • Final Pass/Fail 节点
  3. 连接节点:All Block Outputs → Function → Final Pass/Fail

image.png

7.3 配置通过/失败逻辑

双击 Function 节点,选择以下逻辑示例之一:

选项 1:无缺陷时通过

// 如果未检测到铅笔痕迹则通过
const allBlobs = msg.payload.segmentation.blobs;
const results = allBlobs.length < 1;
msg.payload = results;
return msg;

选项 2:所有痕迹均小于阈值时通过

// 如果所有痕迹均小于阈值则通过
const threshold = 500; // 像素
const allBlobs = msg.payload.segmentation.blobs;
const allUnderThreshold = allBlobs.every(blob => blob.pixel_count < threshold);
msg.payload = allUnderThreshold;
return msg;

选项 3:总覆盖面积较低时通过

// 如果总标记面积低于阈值则通过
const threshold = 5000; // 总像素数
const allBlobs = msg.payload.segmentation.blobs;
const totalArea = allBlobs.reduce((sum, blob) => sum + blob.pixel_count, 0);
msg.payload = totalArea < threshold;
return msg;

7.4 部署并测试逻辑

  1. 点击 “Done” 保存函数
  2. 点击 “Deploy” 激活逻辑
  3. 进入 HMI 测试您的通过/失败逻辑

测试您的逻辑:

  • 使用干净的样品(应通过)
  • 使用轻微标记的样品(根据您的标准通过/失败)
  • 使用严重标记的样品(应失败)
  • 验证结果是否符合预期

第 8 步:优化与验证

8.1 使用生产样品测试

  1. 运行多个测试样品进行检测
  2. 验证检测准确率是否满足要求
  3. 检查通过/失败逻辑是否正确工作
  4. 记录任何问题或特殊情况

8.2 微调模型性能

如果检测不稳定:

  • 添加更多多样化的训练图像
  • 提高标注质量和一致性
  • 调整成像设置以增强对比度
  • 进行更多迭代重新训练

如果需要调整通过/失败逻辑:

  • 修改 Node-RED 函数中的阈值
  • 测试不同的逻辑方案
  • 考虑多重标准以应对复杂决策
  • 结合生产需求进行验证

8.3 生产验证

  1. 在实际条件下使用真实生产零件进行测试
  2. 与质量团队确认标准符合要求
  3. 记录性能指标,如检测准确率和误报率
  4. 建立监控机制,跟踪性能变化

第 9 步:理解分割结果

9.1 分割数据结构

您的分割结果包含:

  • Blobs:单个检测到的特征(铅笔痕迹)
  • Pixel Count:每个特征的大小
  • Location Data:特征所在位置
  • Confidence Scores:模型对每个检测的置信度

9.2 使用分割数据

您可以基于以下内容创建复杂的通过/失败逻辑:

  • 缺陷数量
  • 单个缺陷大小(像素数)
  • 缺陷总面积(所有像素数之和)
  • 缺陷位置
  • 缺陷形状特征(适用于高级应用)

成功!您的分割模型已完成

您的 OV20i 分割检测现已能够:

自动检测图像中的铅笔痕迹(或您的特定特征)

测量检测到特征的大小和数量

根据您的具体标准做出通过/失败判定

提供每个检测特征的详细信息

适应痕迹大小、形状和位置的变化

关键要点

分割 vs. 分类:

  • 分割 用于定位并测量图像中的特定特征
  • 分类 用于识别整体对象或整体状态
  • 分割适用于缺陷检测、污染分析或覆盖率测量

训练最佳实践:

  • 标注质量比数量更重要
  • 训练集应包含多样化样本
  • 使用生产样品进行充分测试
  • 持续监控并根据需要重新训练

通过/失败逻辑:

  • 从简单标准开始,逐步增加复杂度
  • 使用边界样本和极端情况测试逻辑
  • 记录标准以保证一致性
  • 综合考虑多因素以实现稳健决策

后续步骤

完成首个分割模型后:

  1. 应用于其他用例 — 尝试检测不同类型的缺陷或特征
  2. 与生产系统集成 — 连接 PLC 或质量管理系统
  3. 建立数据采集 — 跟踪性能指标和检测统计
  4. 培训操作员 — 确保团队了解如何监控和维护系统
  5. 规划维护 — 安排定期模型更新和性能评估

🔗 相关链接